create-next-pro-cli
Version:
Advanced Next.js project scaffolder with i18n, Tailwind, App Router and more.
63 lines (57 loc) • 1.5 kB
text/typescript
import NextAuth from "next-auth";
import type {
NextAuthOptions,
Session,
User,
Account,
Profile,
} from "next-auth";
import GoogleProvider from "next-auth/providers/google";
import type { JWT } from "next-auth/jwt";
const authOptions: NextAuthOptions = {
providers: [
GoogleProvider({
clientId: process.env.GOOGLE_CLIENT_ID!,
clientSecret: process.env.GOOGLE_CLIENT_SECRET!,
}),
],
callbacks: {
async jwt({ token, user }: { token: JWT; user?: User }) {
if (user) {
token.id = user.id;
token.email = user.email;
token.name = user.name;
}
console.log("JWT Callback:", token);
return token;
},
async session({ session, token }: { session: Session; token: JWT }) {
if (session.user) {
session.user.email = token.email;
session.user.name = token.name;
}
return session;
},
async signIn({
user,
account,
profile,
email,
credentials,
}: {
user: User;
account: Account | null;
profile?: Profile;
email?: string | { verificationRequest?: boolean };
credentials?: Record<string, unknown>;
}) {
return true;
},
async redirect({ url, baseUrl }: { url: string; baseUrl: string }) {
const customCallbackRoute = "/api/auth/post-login";
return baseUrl + customCallbackRoute;
},
},
};
const handler = NextAuth(authOptions);
export { handler as GET, handler as POST };